Page({
  data: {
    id: null,
    detail: null,
    userInfo: {}
  },
  onLoad(query) {
    const { id } = query;
    this.setData({ id });
    this.loadUserInfo();
    this.loadGoodsDetail(id);
  },
  
  // 加载用户信息
  loadUserInfo() {
    const app = getApp();
    // 优先从userInfo1中获取用户信息，如果没有则从userInfo中获取
    let userInfo = app.getUserInfo1() || app.globalData.userInfo || {};
    
    // 如果从userInfo1获取到数据，将totalPoint映射为points
    if (userInfo.totalPoint !== undefined) {
      userInfo = {
        ...userInfo,
        points: userInfo.totalPoint || 0 // 将totalPoint映射为points字段
      };
    }
    
    this.setData({
      userInfo: userInfo
    });
    
    console.log('商品详情页面加载的用户信息:', userInfo);
  },

  // 加载商品详情
  loadGoodsDetail(id) {
    let token = '';
    try {
      token = wx.getStorageSync('token');
    } catch (e) {
      console.error('获取token失败', e);
    }

    wx.showLoading({
      title: '加载中...',
      mask: true
    });

    // 调用后端接口获取商品详情（多表联查，包含规格信息）
    wx.request({
      url: 'http://localhost:8080/point/goods/detail/' + id,
      method: 'GET',
      header: {
        'Authorization': token,
        'Content-Type': 'application/json'
      },
      success: (res) => {
        wx.hideLoading();
        console.log('商品详情API返回数据:', res.data);
        
        if (res.data.code === 200) {
          const goodsData = res.data.data;
          // 转换数据格式，根据实际API返回的字段名
          const detail = {
            id: goodsData.id,
            name: goodsData.name,
            desc: goodsData.desc,
            imageUrl: this.getFullImageUrl(goodsData.coverImg),
            point: goodsData.point,
            originalPrice: goodsData.originalPrice,
            tags: this.generateTags(goodsData),
            stock: goodsData.stock || 0,
            sales: goodsData.sales || 0,
            validityDays: goodsData.validityDays || 0,
            exchangeCount: goodsData.exchangeCount || 0,
            detailImages: this.generateDetailImages(goodsData),
            specifications: goodsData.specifications || []
          };

          console.log('转换后的商品详情:', detail);

          this.setData({
            detail: detail
          });
        } else {
          wx.showToast({
            title: res.data.msg || '获取商品详情失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('获取商品详情失败', err);
        wx.showToast({
          title: '获取商品详情失败',
          icon: 'none'
        });
      }
    });
  },

  // 获取完整的图片URL
  getFullImageUrl(imagePath) {
    if (!imagePath) return '';
    if (imagePath.startsWith('http')) return imagePath;
    return 'https://gzq123.oss-cn-beijing.aliyuncs.com/' + imagePath;
  },

  // 生成商品标签
  generateTags(goodsData) {
    const tags = [];
    
    if (goodsData.exchangeCount > 0) {
      tags.push('热门');
    }
    if (goodsData.stock > 0 && goodsData.stock < 50) {
      tags.push('限时');
    }
    if (goodsData.validityDays > 0) {
      tags.push('有效期');
    }
    if (goodsData.sales > 100) {
      tags.push('热销');
    }
    
    return tags;
  },

  // 生成详情图片数组
  generateDetailImages(goodsData) {
    // 如果没有详情图片，使用主图作为详情图
    if (goodsData.coverImg) {
      return [this.getFullImageUrl(goodsData.coverImg)];
    }
    return [];
  },

  // 生成规格信息（已废弃，现在直接从接口获取）
  generateSpecifications(goodsData) {
    // 现在直接从接口获取specifications，不需要额外处理
    return goodsData.specifications || [];
  },

  // 兑换商品 - 跳转到订单确认页面
  onExchange() {
    const { detail, userInfo } = this.data;
    
    console.log('点击兑换按钮，商品信息:', detail);
    console.log('用户信息:', userInfo);
    
    if (!detail) {
      wx.showToast({
        title: '商品信息错误',
        icon: 'none'
      });
      return;
    }

    const userPoints = userInfo.points || userInfo.totalPoint || 0;
    if (userPoints < detail.point) {
      wx.showToast({
        title: '积分不足',
        icon: 'none'
      });
      return;
    }

    // 构建跳转URL
    const url = `/my/pages/order-confirm/order-confirm?goodsId=${detail.id}&goodsName=${detail.name}&goodsImage=${detail.imageUrl}&points=${detail.point}&originalPrice=${detail.originalPrice}`;
    console.log('准备跳转到:', url);
    
    // 跳转到订单确认页面
    wx.navigateTo({
      url: url,
      success: () => {
        console.log('跳转成功');
      },
      fail: (err) => {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '跳转失败: ' + err.errMsg,
          icon: 'none'
        });
      }
    });
  },

  // 预览图片
  onPreviewImage(e) {
    const { index } = e.currentTarget.dataset;
    const { detailImages } = this.data.detail;
    
    if (detailImages && detailImages.length > 0) {
      wx.previewImage({
        current: detailImages[index],
        urls: detailImages
      });
    }
  }
}); 